package cn.iocoder.yudao.module.dify.service.fileprocessing;

import java.io.IOException;
import java.util.*;
import javax.validation.*;

import cn.iocoder.yudao.module.dify.api.vo.resp.StreamResponse;
import cn.iocoder.yudao.module.dify.controller.admin.fileprocessing.vo.*;
import cn.iocoder.yudao.module.dify.dal.dataobject.fileprocessing.FileProcessingDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import reactor.core.publisher.Flux;

/**
 * Dify文件处理跟踪 Service 接口
 *
 * @author 芋道源码
 */
public interface FileProcessingService {

    /**
     * 创建Dify文件处理跟踪
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createFileProcessing(@Valid FileProcessingSaveReqVO createReqVO) throws IOException;

    /**
     * 更新Dify文件处理跟踪
     *
     * @param updateReqVO 更新信息
     */
    void updateFileProcessing(@Valid FileProcessingSaveReqVO updateReqVO);

    /**
     * 删除Dify文件处理跟踪
     *
     * @param id 编号
     */
    void deleteFileProcessing(Long id);

    /**
     * 获得Dify文件处理跟踪
     *
     * @param id 编号
     * @return Dify文件处理跟踪
     */
    FileProcessingDO getFileProcessing(Long id);

    /**
     * 获得Dify文件处理跟踪分页
     *
     * @param pageReqVO 分页查询
     * @return Dify文件处理跟踪分页
     */
    PageResult<FileProcessingDO> getFileProcessingPage(FileProcessingPageReqVO pageReqVO);

    /**
     * 开始调用dify工作流生成风险评估报告
     * @param id
     * @return
     */
    void workFolowRistManagerReport(Long id) throws IOException;


   public  List<FileProcessingDO> getSimpFileleList(Long userId);

    /**
     * 通过dify回传的id获取文件信息
     * @param fileIdList
     */
    List<FileProcessingDO> getFileMsgByFileId(List<String>  fileIdList);
}